import axios from 'axios'
import Utils from './Utils'

export default class NetUtils {
  static GET = 'GET'
  static POST = 'POST'

  constructor () {
    /* axios 配置
     */
    axios.defaults.timeout = 30000
    axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
    axios.defaults.baseURL = 'http://happy.dpxiao.com'
  }

  /**
   * 网络请求
   * @param url             @ 请求地址
   * @param params          @ 请求参数
   * @param successFuc      @ 成功回调方法
   * @param errorFunc       @ 失败回调方法
   * @param method          @ 请求方法
   * @constructor
   */
  static R (url, params, successFuc, errorFunc, method = NetUtils.GET) {

    let request = null
    if (method === NetUtils.GET) {
      request = axios.get(url, params)
    } else if (method === NetUtils.POST) {
      request = axios.post(url, params)
    }

    if (Utils.empty(request)) return

    request.then(function (response) {
      let res = response.data
      let code = res.code
      let msg = res.msg

      if (code === 0) {
        // 成功回调方法
        successFuc(res)
      } else {
        // 失败回调方法
        if (Utils.isExitsFunction(errorFunc)) {
          errorFunc(res)
        } else {
          Utils.Toast(msg)
        }
      }
    }).catch(function (error) {
      console.log(error)
      let errorJson = {
        code: -100,
        data: null,
        msg: '服务器异常'
      }
      // 失败回调方法
      if (Utils.isExitsFunction(errorFunc)) {
        errorFunc(errorJson)
      } else {
        Utils.Toast(errorJson.msg)
      }
    })
  }
}
